Finds symbols in symbol-pattern1 that are not in common with those in symbol-pattern2 and returns a new list. This operation is valuable for producing extra instrumental parts whilst avoiding too many simulataneous notes sounding at the same time.
If symbol-pattern1 is shorter than symbol-pattern2, then no symbols from symbol-pattern2 are changed from this point on. When working with two drum patterns, you may remove one pattern from other.
(symbol-remove '(a c e) '(ab cd ef))
--> (b d f)
(symbol-remove
'(a b c (-1 a) (+3 g 3 y))
'(abc bcd abe g (-1 a +3 g y) (a b)))
--> (bc cd abe g (-1 a y) (a b))
If you use fill-rest with symbol-remove you can create a new instrumental part that plays only when the other two instruments play simultaneously.
(setq perc (fill-rest (symbol-remove mel1 mel2) '(t u ts)))